﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Financial_Assistant
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private string _connectionString =
                @"Data Source = CHRISTINABEIM\SQLEXPRESS; Initial Catalog=Financial_Assistant; Trusted_Connection=True;"; //( ip-сервера, имя БД, разрешение соединения)

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Get_List_Sites() // метод получения данных в комбобокс
        {
            try
            {
                SqlConnection connection = new SqlConnection(_connectionString);
                NameComboBox.Items.Clear();
                List<string> assigmentList = new List<string>();

                String query = "SELECT Имя FROM [Имена входа]";
                SqlCommand command = new SqlCommand(query, connection);
                connection.Open(); // открыть считывание

                SqlDataReader reader = command.ExecuteReader();
                string results = String.Empty;

                while (reader.Read())
                {
                    for (int j = 0; j < reader.FieldCount; j++)
                    {
                        assigmentList.Add(reader[j].ToString());
                        NameComboBox.Items.Add(reader[j].ToString());
                    }
                }
                reader.Close();
                command.Dispose();
                connection.Dispose();
            }
            catch (Exception e)
            {
                MessageBox.Show(this, "Ошибка чтения из базы данных" +Environment.NewLine + e.Message);
            }
        }

        private void Image_MouseDown(object sender, MouseButtonEventArgs e)
        {
            AdminWindow myWindow = new AdminWindow();
            myWindow.ShowDialog();          
        }

        private void ExitButton_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void GoButton_Click(object sender, RoutedEventArgs e)
        {
            if (NameComboBox.SelectedItem == null) MessageBox.Show(this, "Выберите имя из списка или создайте\nновое в \"Администраторе пользователей\"");
            else
            {
                string _password = String.Empty;
                string _userId = String.Empty;

                try
                {
                    SqlConnection connection = new SqlConnection(_connectionString);

                    StringBuilder query = new StringBuilder();
                    query.Append("SELECT [ID пользователя], Пароль FROM [Имена Входа] where Имя = '");
                    query.Append(NameComboBox.SelectedItem.ToString() + "'");

                    SqlCommand command = new SqlCommand(query.ToString(), connection);
                    connection.Open(); // открыть считывание
                    SqlDataReader reader = command.ExecuteReader();

                    string results = String.Empty;

                    while (reader.Read())
                    {
                        for (int j = 0; j < reader.FieldCount; j++)
                        {
                            _userId = reader[0].ToString();
                            _password = reader[1].ToString();
                        }
                    }
                    Confirmation newWindow = new Confirmation(ActionType.Entry, _userId, _password, NameComboBox.SelectedItem.ToString());
                    newWindow.ShowDialog();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "Ошибка чтения из базы данных" + Environment.NewLine + ex.Message);
                }
            }
            //GetCanvas getWindow = new GetCanvas(user_id);
            //getWindow.Height = this.ActualHeight;
            //getWindow.Width = this.ActualWidth;
            //getWindow.WindowState = this.WindowState;
            //getWindow.Show();
            //
        }

        private void Window_Activated(object sender, EventArgs e)
        {
            Get_List_Sites();
        }

    }
}
